package rath.toys.springnote;

import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;

import rath.toys.springnote.util.DateUtil;
/**
 * 스프링노트 특정 페이지에 달린 댓글들을 나타내는 클래스이다.
 *
 * @author Jang-Ho Hwang, rath@ncsoft.net
 * @version 1.0, $id$ since 2008/10/18
 */
public class Comment
{
	private static final SimpleDateFormat fmtDate = 
		new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");

	private int id;
	private String creator;
	private Date createdDate;
	private String description;
	private int pageId;

	public Comment()
	{

	}
	
	public Comment( int pageId )
	{
		this.pageId = pageId;
	}

	/** 
	 * 댓글의 고유 아이디를 설정한다.
	 */
	public void setId( int id )
	{
		this.id = id;
	}

	/**
	 * 댓글의 고유 아이디를 가져온다.
	 */
	public int getId()
	{
		return this.id;
	}

	/**
	 * 댓글 작성자를 설정한다.
	 */
	public void setCreator( String creator )
	{
		this.creator = creator;
	}

	/**
	 * 댓글 작성자를 가져온다.
	 */
	public String getCreator()
	{
		return this.creator;
	}

	/**
	 * 작성 시간을 설정한다.
	 */
	public void setCreationDate( Date date )
	{
		this.createdDate = date;
	}

	/**
	 * 작성 시간을 설정한다.
	 */
	public void setCreationDate( String date ) throws ParseException
	{
		setCreationDate( fmtDate.parse(DateUtil.convertToJavaDate(date)) );
	}

	/**
	 * 작성 시간을 가져온다.
	 */
	public Date getCreationDate()
	{
		return this.createdDate;
	}

	/**
	 * 댓글을 포함하고 있는 페이지 번호를 설정한다.
	 */
	public void setPageId( int pageId )
	{
		this.pageId = pageId;
	}

	/**
	 * 댓글을 포함하고 있는 페이지 번호를 가져온다.
	 */
	public int getPageId()
	{
		return this.pageId;
	}

	/**
	 * 댓글 내용을 설정한다.
	 */
	public void setDescription( String desc )
	{
		this.description = desc;
	}

	/**
	 * 댓글 내용을 가져온다.
	 */
	public String getDescription()
	{
		return this.description;
	}
}
